﻿using System.Windows;

namespace WpfApp1;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;

public partial class MainViewModel:ObservableObject
{


    [ObservableProperty]
    //这里定义的私有变量_name被封装了，xaml里面要使用Name访问
    private string _name="Mvvm binding1";

    [RelayCommand]
    private void HelloWorld()//当使用 [RelayCommand] 或 [ICommand] 特性时，默认情况下生成的命令属性名称是方法名加上“Command”后缀，那么xaml中对应的命令属性应该是 HelloWorldCommand。
    {
       MessageBox.Show("hello world"); 
    }


    private string _name2="Mvvm binding2";
    public string Name2
    {
        get => _name2;
        set =>
            //可以在此赋值前的合法性验证
            SetProperty(ref _name2, value);
    }      
    

    
    
}